export default {
	namespaced: true,
	state: {
		carts: uni.getStorageSync('carts') || [] // 存放购物车数据
	},
	// vuex 对mutations里面所有的方法的第一个参数进行处理
	// 处理为state
	// 定义的方法第二参数就是传过来的参数
	mutations: {

		add(state, good) {
			// 判断carts中有没有要添加的数据
			// 如果有 修改count
			// 如果没有 添加
			// let isHas = false
			// for(let i=0; i<state.carts.length; i++) {
			// 	const cart = carts[i]
			// 	if (cart.id === good.id ) {
			// 		isHas = true
			// 	}
			// }

			// if (isHas) {

			// }
			// [{a:1}, {b:2}]

			// console.log(state.carts)
			// find方法用于进行数组查找
			// 参数为函数，在函数中返回条件
			// 如果条件成立，find方法会返回条件成立的这一项
			// 如果条件不成立，find方法返回undefined
			const findItem = state.carts.find((item) => {
				return item.goods_id === good.goods_id
			})

			if (findItem) {
				findItem.goods_count++
			} else {
				state.carts.push(good)
			}
			// 将数据存储到本地
			// 参数1 key 名字
			// 参数2 value 数据
			uni.setStorageSync('carts', state.carts)
		}
	},
	// 数据派生 根据state数据 生成另外一个数据
	getters: {
		totalCount(state) {
			return state.carts.length
		}
	}
}
